Increasingly enterprises and individuals expect to have access to information twenty-four hours a day, seven days a week, and three-hundred sixty-five days a year. Additionally, since the world economy has become highly networked, the location of the information desired by users has become largely irrelevant.
Many techniques are deployed by enterprises to ensure that their data is available when requested or when failures occur. One such technique employs data replication or mirroring; such that the data is available from multiple independent data sources should some type of failure occur. Replication techniques may only detect and send the modified blocks, which reduces the amount of data that is sent between replication clients, and requires less bandwidth and time to provide the data replication.
The security of data is also a significant concern for enterprises. Thus, replicated data is often encrypted. A variety of techniques exists for encrypting data in blocks on a storage volume and securely delivering decrypted versions of the blocks as needed.
Each of the available techniques for securely encrypting and decrypting blocks of data has their own advantages and disadvantages. Choices among encryption techniques can involve tradeoffs between the degree of security and the data processing demands to implement the encryption. The data processing demands are reflected in the increased costs associated with increased processing and storage bandwidth, and/or slower processing speeds. Some encryption techniques encrypt blocks based on the data contained in other blocks, where the modification of one block changes the encryption in many other blocks (e.g. all of the blocks that are logically subsequent to the modified block). When a block is added or removed, then all the blocks from those that were inserted or deleted have to be resynchronized when remote resynchronization tools are used or when file difference generating algorithms are used, since all those blocks are changed. This is a costly operation in terms of memory and processing.
Therefore, improved techniques for synchronizing encrypted files are desirable.